package com.ruiyian.project.predict.service;

import com.ruiyian.project.predict.domain.RecordMsg;
import com.ruiyian.project.predict.domain.SimuMsg;

import java.util.List;
import java.util.Map;

/**
 * @author chong
 * @email 673426164@qq.com
 * @create 2021/12/14
 * Desc: 道路预测
 */
public interface PredictService {

    /**
     * 读取流量预测数据
     * @return
     */
    List<Map<String, Object>> readDataFlowPre(String path);

    /**
     * 读取拥堵点数据
     * @return
     */
    List<Map<String, Object>> readDataCongestionPoint(String path);

    /**
     * 读取道路措施数据
     * @return
     */
    List<Map<String, Object>> readDataAction(String path);

    /**
     * 创建
     * ENTRY.dat
     * EXIT.dat
     * GANTRY.dat
     * RawData202007281231.msg
     */
    void createData(List<Map<String, String>> list);

    /**
     * 保存simu文件
     * @param path
     */
    void saveSimuMsg(String path);

    /**
     * 保存仿真录像视频
     */
    void saveRecordMsg(String path);
    /**
     * 获取最新
     * @return
     */
    SimuMsg selectNewData();

    /**
     * 根据抢号获取最新仿真视频
     * @param code
     * @return
     */
    RecordMsg selectNewRecordDataByCode(String code);

    /**
     * 抢号,实例id
     * @param code
     * @param runId
     * @return
     */
    RecordMsg selectNewRecordDataByCodeAndRunId(String code, Integer runId);

    /**
     * 入口数据
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String,String>> queryEntryData(String startTime, String endTime);

    /**
     * 出口数据
     */
    List<Map<String, String>> queryExitData(String startTime, String endTime);

    /**
     * 门架数据
     * @param startTime
     * @param endTime
     * @return
     */
    List<Map<String, String>> queryDoorFrameData(String startTime, String endTime);


    /**
     * 批量添加入口数据
     * @param list
     */
    void batchAddEntry(List<Map<String, String>> list);
    /**
     * 批量添加出口数据
     * @param list
     */
    void batchExitSave(List<Map<String, String>> list);
    /**
     * 批量添加门架数据
     * @param list
     */
    void batchDoorSave(List<Map<String, String>> list);
}
